import logging
from datetime import timedelta

from redis import StrictRedis


class Config():
    # 开启调试
    DEBUG = True
    # 设置数据库URL,连接数据库
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/db_info_15"
    # 不跟踪数据库变化
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # redis绑定的IP和端口
    REDIS_IP = "127.0.0.1"
    REDIS_PORT = 6379
    # 设置session存储的类型(session一般都是存在内存中，所以才选择redis数据库）
    SESSION_TYPE = "redis"
    # 设置另一个redis对象，用来存储session
    SESSION_REDIS = StrictRedis(host=REDIS_IP, port=REDIS_PORT)
    # 开启session的（指纹）加密（需要使用flask的秘钥，secret_key）
    SESSION_USE_SIGNER = True
    # 应用秘钥
    SECRET_KEY = 'pGSco16hquNSS2hOAs6FAT9QsMz1AXpAvi8Gqq1lDOpbi/EKumG3/SmOLhaocUPq'
    # 设置session过期时间
    PERMANENT_SESSION_LIFETIME = timedelta(days=7)
    #设置sqlalchemy自动提交，增删改后自动提交
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True


# 使调试模式可以在不同的环境下可调，应该创建两个子类，重写DEBUG属性

"""开发环境下的配置"""


class DevelopConfig(Config):
    DEBUG = True
    LOG_LEVEL = logging.DEBUG


"""发布环境配置"""


class ProductConfig(Config):
    DEBUG = False
    LOG_LEVEL = logging.ERROR


# 记录配置，用字典进一步封装
conf = {
    "dev": DevelopConfig,
    "pro": ProductConfig
}
